import requests
import unittest

from api.api01_tpshop_login import ApiTpshopLogin


class TestTpshopLogin(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        # 由于是实例封装，需要先实例化封装的接口类
        cls.session = requests.Session()
        cls.api_tpshop_login = ApiTpshopLogin(cls.session)
        pass

    def setUp(self) -> None:
        self.api_tpshop_login.get_verification(self.session)

    # 测试登录成功
    def test01_login_ok(self):
        data = {"username": "13012345678", "password": "123456", "verify_code":"8888"}
        resp = self.api_tpshop_login.login(self.session, data)
        self.assertEqual(resp.status_code, 200)
        self.assertIn(resp.text, "登录成功")
    # 测试手机号不存在 - 同一个接口，不同的参数：判断准则是域名与路径相同，参数不同
    def test02_login_no_exit_tele(self):
        data ={"username": "13011112278", "password": "123456", "verify_code":"8888"}
        resp = self.api_tpshop_login.login(self.session, data)
        self.assertEqual(resp.status_code, 200)
        self.assertIn(resp.text, "不存在")
    # 密码错误
    def test03_login_err_pwd(self):
        data = {"username": "13011112278", "password": "111111", "verify_code": "8888"}
        resp = self.api_tpshop_login.login(self.session, data)
        self.assertEqual(resp.status_code, 200)
        self.assertIn(resp.text, "密码错误")

    # 总结问题：请求相同，就是参数不同，推荐使用参数化